package main

import "fmt"

func main() {
	funcAdd := add1()
	funcAdd()
	funcAdd()
	result := funcAdd()
	fmt.Println(result)
}

//只要闭包还在使用外界的变量, 那么外界的变量就会一直存在
func add1() func() int {
	x := 0
	return func() int { //这是一个闭包
		x++
		return x
	}
}
